package module

import (
	"fmt"
	"github.com/fsnotify/fsnotify"
	"github.com/spf13/viper"
	"go-admin/src/module/config"
)

var (

	DefaultConf config.Server
	Vipermodule *viper.Viper



)


func init(){
	configfile :="./config/config.yaml"
	Vipermodule = viper.New()

	Vipermodule.SetConfigFile(configfile)
	err := Vipermodule.ReadInConfig()
	if err != nil {
		panic(fmt.Errorf("Fatal error config file: %s \n", err))
	}
	Vipermodule.WatchConfig()

	Vipermodule.OnConfigChange(func(e fsnotify.Event) {
		fmt.Println("config file changed:", e.Name)
		//这里配置改变了，可以做一些初始化的工作
		if err := Vipermodule.Unmarshal(&DefaultConf); err != nil {
			fmt.Println(err)
		}
		initModule()

	})

	if err := Vipermodule.Unmarshal(&DefaultConf); err != nil {
		fmt.Println(err)
	}
	initModule()

}
func initModule(){
	InitZap()
	InitDB()
	RedisConnect()

}

